package cn.xttc.edu.service;

import cn.xttc.edu.entity.Order;
import cn.xttc.edu.entity.vo.OrderVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 杨磊
 * @since 2022-02-27
 */
public interface OrderService extends IService<Order> {
    /**
     * 分页获取所有订单
     * @param page page对象
     * @param status 订单状态
     * @param search 搜索参数
     * @return IPage
     */
    IPage<OrderVo> getOrderVosByCondition(Page<OrderVo> page, Integer status, String search);

    /**
     * 根据cid和status获取订单
     * @param cId 用户id
     * @param statuses 订单状态
     * @return orderVo的list集合
     */
    List<OrderVo> getOrdersByCIdAndStatus(@Param("cId")Integer cId, @Param("statuses") Integer[] statuses);

    /**
     * 获取所有待接单的订单
     * @return 订单集合
     */
    List<OrderVo> getAllWaitingOrders();

    /**
     * 根据dId和status查询订单
     * @param id 司机id
     * @param status 订单状态
     * @return order集合
     */
    List<OrderVo> getOrdersByDIdAndStatus(Integer id, Integer status);
}
